<html>
<head>
  <link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
  <div class="main">
    <h1>Namespace: joker.filepath</h1>
    <span class="var-added">v1.0</span>
    <h2>Contents</h2>
    <ul>
      <li>
        <a href="#_summary">Summary</a>
      </li>
      <li>
        <a href="#_index">Index</a>
      </li>
      <li>
        <a href="#_constants">Constants</a>
      </li>
      <li>
        <a href="#_variables">Variables</a>
      </li>
      <li>
        <a href="#_functions">Functions, Macros, and Special Forms</a>
      </li>
    </ul>
    <h2 id="_summary">Summary</h2>
    <p class="var-docstr">Implements utility routines for manipulating filename paths.</p>
    <h2 id="_index">Index</h2>
    <ul class="index">
      <li>
  <a href="#abs">abs</a>
</li>
<li>
  <a href="#abs?">abs?</a>
</li>
<li>
  <a href="#base">base</a>
</li>
<li>
  <a href="#clean">clean</a>
</li>
<li>
  <a href="#dir">dir</a>
</li>
<li>
  <a href="#eval-symlinks">eval-symlinks</a>
</li>
<li>
  <a href="#ext">ext</a>
</li>
<li>
  <a href="#file-seq">file-seq</a>
</li>
<li>
  <a href="#from-slash">from-slash</a>
</li>
<li>
  <a href="#glob">glob</a>
</li>
<li>
  <a href="#join">join</a>
</li>
<li>
  <a href="#list-separator">list-separator</a>
</li>
<li>
  <a href="#matches?">matches?</a>
</li>
<li>
  <a href="#rel">rel</a>
</li>
<li>
  <a href="#separator">separator</a>
</li>
<li>
  <a href="#split">split</a>
</li>
<li>
  <a href="#split-list">split-list</a>
</li>
<li>
  <a href="#to-slash">to-slash</a>
</li>
<li>
  <a href="#volume-name">volume-name</a>
</li>

    </ul>
    <h2 id="_constants">Constants</h2>
    Constants are variables with <tt>:const true</tt> in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.
    <ul>
      <li>
  <h3 class="Constant" id="list-separator">list-separator</h3>
  <span class="var-kind Constant">String</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">OS-specific path list separator.</p>
  
  
</li>
<li>
  <h3 class="Constant" id="separator">separator</h3>
  <span class="var-kind Constant">String</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"></pre>
  <p class="var-docstr">OS-specific path separator.</p>
  
  
</li>

    </ul>
    <h2 id="_variables">Variables</h2>
    <ul>
      (None.)
    </ul>
    <h2 id="_functions">Functions, Macros, and Special Forms</h2>
    <ul>
      <li>
  <h3 class="Function" id="abs">abs</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(abs path)</code></div>
</pre>
  <p class="var-docstr">Returns an absolute representation of path. If the path is not absolute it will be<br>
  joined with the current working directory to turn it into an absolute path.<br>
  The absolute path name for a given file is not guaranteed to be unique.<br>
  Calls clean on the result.</p>
  
  
</li>
<li>
  <h3 class="Function" id="abs?">abs?</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(abs? path)</code></div>
</pre>
  <p class="var-docstr">Reports whether the path is absolute.</p>
  
  
</li>
<li>
  <h3 class="Function" id="base">base</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(base path)</code></div>
</pre>
  <p class="var-docstr">Returns the last element of path. Trailing path separators are removed before<br>
  extracting the last element. If the path is empty, returns &#34;.&#34;. If the path consists<br>
  entirely of separators, returns a single separator.</p>
  
  
</li>
<li>
  <h3 class="Function" id="clean">clean</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(clean path)</code></div>
</pre>
  <p class="var-docstr">Returns the shortest path name equivalent to path by purely lexical processing.<br>
  Applies the following rules iteratively until no further processing can be done:<br>
<br>
1. Replace multiple separator elements with a single one.<br>
2. Eliminate each . path name element (the current directory).<br>
3. Eliminate each inner .. path name element (the parent directory)<br>
   along with the non-.. element that precedes it.<br>
4. Eliminate .. elements that begin a rooted path:<br>
   that is, replace &#34;/..&#34; by &#34;/&#34; at the beginning of a path,<br>
   assuming separator is &#39;/&#39;.<br>
The returned path ends in a slash only if it represents a root directory, such as &#34;/&#34; on Unix or `C:\` on Windows.<br>
<br>
Finally, any occurrences of slash are replaced by separator.<br>
<br>
If the result of this process is an empty string, returns the string &#34;.&#34;.</p>
  
  
</li>
<li>
  <h3 class="Function" id="dir">dir</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(dir path)</code></div>
</pre>
  <p class="var-docstr">Returns all but the last element of path, typically the path&#39;s directory.<br>
  After dropping the final element, calls clean on the path and trailing slashes are removed.<br>
  If the path is empty, returns &#34;.&#34;. If the path consists entirely of separators,<br>
  returns a single separator. The returned path does not end in a separator unless it is the root directory.</p>
  
  
</li>
<li>
  <h3 class="Function" id="eval-symlinks">eval-symlinks</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(eval-symlinks path)</code></div>
</pre>
  <p class="var-docstr">Returns the path name after the evaluation of any symbolic links. If path is relative the result will be<br>
  relative to the current directory, unless one of the components is an absolute symbolic link.<br>
  Calls clean on the result.</p>
  
  
</li>
<li>
  <h3 class="Function" id="ext">ext</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(ext path)</code></div>
</pre>
  <p class="var-docstr">Returns the file name extension used by path. The extension is the suffix beginning at the final dot<br>
  in the final element of path; it is empty if there is no dot.</p>
  
  
</li>
<li>
  <h3 class="Function" id="file-seq">file-seq</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(file-seq root)</code></div>
</pre>
  <p class="var-docstr">Returns a seq of maps with info about files or directories under root.</p>
  
  
</li>
<li>
  <h3 class="Function" id="from-slash">from-slash</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(from-slash path)</code></div>
</pre>
  <p class="var-docstr">Returns the result of replacing each slash (&#39;/&#39;) character in path with a separator character.<br>
  Multiple slashes are replaced by multiple separators.</p>
  
  
</li>
<li>
  <h3 class="Function" id="glob">glob</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(glob pattern)</code></div>
</pre>
  <p class="var-docstr">Returns the names of all files matching pattern or nil if there is no matching file.<br>
  The syntax of patterns is the same as in Match. The pattern may describe hierarchical<br>
  names such as /usr/*/bin/ed (assuming the separator is &#39;/&#39;).<br>
<br>
  Ignores file system errors such as I/O errors reading directories.<br>
  Throws exception when pattern is malformed.</p>
  
  
</li>
<li>
  <h3 class="Function" id="join">join</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(join &amp; elems)</code></div>
</pre>
  <p class="var-docstr">Joins any number of path elements into a single path, adding a separator if necessary.<br>
  Calls clean on the result; in particular, all empty strings are ignored. On Windows,<br>
  the result is a UNC path if and only if the first path element is a UNC path.</p>
  
  
</li>
<li>
  <h3 class="Function" id="matches?">matches?</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(matches? pattern name)</code></div>
</pre>
  <p class="var-docstr">Reports whether name matches the shell file name pattern.<br>
  Requires pattern to match all of name, not just a substring.<br>
  Throws exception if pattern is malformed.<br>
  On Windows, escaping is disabled. Instead, &#39;\&#39; is treated as path separator.</p>
  
  
</li>
<li>
  <h3 class="Function" id="rel">rel</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(rel basepath targpath)</code></div>
</pre>
  <p class="var-docstr">Returns a relative path that is lexically equivalent to targpath when joined to basepath<br>
  with an intervening separator. On success, the returned path will always be relative to basepath,<br>
  even if basepath and targpath share no elements. An exception is thrown if targpath can&#39;t be made<br>
  relative to basepath or if knowing the current working directory would be necessary to compute it.<br>
  Calls clean on the result.</p>
  
  
</li>
<li>
  <h3 class="Function" id="split">split</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(split path)</code></div>
</pre>
  <p class="var-docstr">Splits path immediately following the final separator, separating it into a directory and file name component.<br>
  If there is no separator in path, returns an empty dir and file set to path. The returned values have<br>
  the property that path = dir+file.</p>
  
  
</li>
<li>
  <h3 class="Function" id="split-list">split-list</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(split-list path)</code></div>
</pre>
  <p class="var-docstr">Splits a list of paths joined by the OS-specific list-separator, usually found in PATH or GOPATH environment variables.<br>
  Returns an empty slice when passed an empty string.</p>
  
  
</li>
<li>
  <h3 class="Function" id="to-slash">to-slash</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(to-slash path)</code></div>
</pre>
  <p class="var-docstr">Returns the result of replacing each separator character in path with a slash (&#39;/&#39;) character.<br>
  Multiple separators are replaced by multiple slashes.</p>
  
  
</li>
<li>
  <h3 class="Function" id="volume-name">volume-name</h3>
  <span class="var-kind Function">Function</span>
  <span class="var-added">v1.0</span>
  <pre class="var-usage"><div><code>(volume-name path)</code></div>
</pre>
  <p class="var-docstr">Returns leading volume name. Given &#34;C:\foo\bar&#34; it returns &#34;C:&#34; on Windows. Given &#34;\\host\share\foo&#34;<br>
  returns &#34;\\host\share&#34;. On other platforms it returns &#34;&#34;.</p>
  
  
</li>

    </ul>
  </div>
</body>
<script src="main.js"></script>
</html>
